/**
 * Project Name:zyhj-admin
 * File Name:YjfkxxController.java
 * Package Name:com.vviton.zyhj.admin.controller
 * Date:2016年11月29日下午3:14:30
 *
 */

package com.vviton.zyhj.admin.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.vviton.zyhj.admin.content.CommonConstants;
import com.vviton.zyhj.admin.content.SessionYwry;
import com.vviton.zyhj.admin.service.YjfkxxService;
import com.vviton.zyhj.common.base.BaseController;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.utils.page.Page;
import com.vviton.zyhj.common.view.ParamYjfkxx;
import com.vviton.zyhj.common.view.ViewYjfkxx;
import com.wdcloud.framework.core.log.annotation.MonitorLog;

/**
 * ClassName:YjfkxxController <br/>
 * Function: 意见反馈管理Controller. <br/>
 * Date: 2016年11月29日 下午3:14:30 <br/>
 *
 * @author libo
 * @version
 * @since JDK 1.7
 * @see
 */
@Controller
@RequestMapping("yjfk")
public class YjfkxxglController extends BaseController {

    /** 意见反馈管理service */
    @Autowired
    private YjfkxxService yjfkxxService;

    /**
     *
     * selectQyxxListByCondition,(分页查询意见反馈信息列表). <br/>
     * Author: libo <br/>
     * Create Date: 2016年11月29日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年11月29日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param paramYjfkxx 意见反馈参数对象
     * @return Page
     * @since JDK 1.7
     */
    @RequestMapping("getYjfkxxList")
    @ResponseBody
    @MonitorLog(text = "分页查询意见反馈信息列表", containRequest = true)
    public Page selectQyxxListByCondition(@RequestBody ParamYjfkxx paramYjfkxx) {
        return yjfkxxService.selectYjfkxxListByPage(paramYjfkxx);
    }

    /**
     *
     * getFkxxIds,(查询所有的意见反馈的id). <br/>
     * Author: libo <br/>
     * Create Date: 2016年12月2日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年12月2日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param paramYjfkxx 意见反馈参数对象
     * @return List<String> 意见反馈的所有id集合
     * @since JDK 1.7
     */
    @RequestMapping("getYjfkxxIds")
    @ResponseBody
    @MonitorLog(text = "EXCEL导出意见反馈列表", containRequest = true)
    public List<String> getFkxxIds(@RequestBody ParamYjfkxx paramYjfkxx) {
        return yjfkxxService.getFkxxIds(paramYjfkxx);
    }

    /**
     *
     * pldcDdxx,(EXCEL导出意见反馈列表). <br/>
     * Author: libo <br/>
     * Create Date: 2016年11月29日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年11月29日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param ids 所有选中id
     * @param res 响应对象
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("pldcYjfkxx")
    @ResponseBody
    @MonitorLog(text = "EXCEL导出意见反馈列表", containRequest = true)
    public ResultJson pldcDdxx(@RequestParam String ids, HttpServletResponse res) {
        return yjfkxxService.getFkxxListByIds(ids, res);
    }

    /**
     *
     * selectByQyid,(根据id获取意见反馈信息). <br/>
     * Author: libo <br/>
     * Create Date: 2016年11月29日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年11月29日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param id 编号
     * @return ViewYjfkxx
     * @since JDK 1.7
     */
    @RequestMapping("getYjfkById")
    @ResponseBody
    @MonitorLog(text = "根据id获取意见反馈信息", containRequest = true)
    public ViewYjfkxx selectByQyid(@RequestParam String id) {
        return yjfkxxService.getYjfkxxById(id);
    }

    /**
     *
     * updateQyxx,(回复处理意见反馈信息). <br/>
     * Author: libo <br/>
     * Create Date: 2016年11月29日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年11月29日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param record 回复处理意见反馈参数对象
     * @param req 请求对象
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("updateYjfk")
    @ResponseBody
    @MonitorLog(text = "回复处理意见反馈信息", containRequest = true)
    public ResultJson updateQyxx(@RequestBody ParamYjfkxx record, HttpServletRequest req) {
        SessionYwry user = CommonConstants.getSessionYwry(req);
        return yjfkxxService.updateYjfkxx(record, user.getZh(), user.getHync());
    }

    /**
     *
     * deleteYjfkById,(根据ID删除意见反馈信息记录). <br/>
     * Author: libo <br/>
     * Create Date: 2016年11月29日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年11月29日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param id 编号
     * @param req 请求对象
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("deleteYjfk")
    @ResponseBody
    @MonitorLog(text = "根据ID删除意见反馈信息记录", containRequest = true)
    public ResultJson deleteYjfkById(@RequestParam String id, HttpServletRequest req) {
        String yhzh = CommonConstants.getYwryzh(req);
        return yjfkxxService.deleteYjfkxx(id, yhzh);
    }

    /**
     *
     * getYjfkxxByZh,(拉取该账号下意见数据列表). <br/>
     * Author: libo <br/>
     * Create Date: 2016年12月20日 <br/>
     * ===============================================================<br/>
     * Modifier: libo <br/>
     * Modify Date: 2016年12月20日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param req 请求对象
     * @return List<ViewYjfkxx>
     * @since JDK 1.7
     */
    @RequestMapping("getYjfkxxByZh")
    @MonitorLog(text = "拉取该账号下意见数据列表", containRequest = true)
    public List<ViewYjfkxx> getYjfkxxByZh(HttpServletRequest req, @RequestParam String ywy) {
        SessionYwry user = CommonConstants.getSessionYwry(req);
        return yjfkxxService.getYjfkxxByZh(user.getZh(), "", ywy);
    }

}
